在反覆執行 rspec 時會一直需要載入環境,這時候可以透過 spring 幫助你更快的執行 rspec
何謂 spring?
spring是一款Rails的預加載套件(application preloader),到了Rails4.1版開始 Rails 為預設。
Spring 可以讓application在背景執行,不用一直重啟 Rails!
gem 'spring-commands-rspec'
and bundle install
之後下
bundle exec spring binstub rspec
會在專案中產生 bin/rspec
file
#!/usr/bin/env ruby
begin
load File.expand_path('../spring', __FILE__)
rescue LoadError => e
raise unless e.message.include?('spring')
end
require 'bundler/setup'
load Gem.bin_path('rspec-core', 'rspec')
這時候你會看到執行 rspec 時都會多做一行 load ~/.spring.rb
就代表有啟用成功! 接下來跑測試就不用再重新載入環境拉!
如果當有些測試跑不過覺得很疑惑自己寫的沒問題時可以用spring stop
清除 spring 並重新 loading 一次即可
參考來源:
Rails初心者的學習筆記:時間該浪費在美好的事物上,Spring如是說
spring-commands-rspec